package com.yang.ddd.application.service;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yang.ddd.infrastructure.common.DeleteRequest;
import com.yang.ddd.interfaces.dto.spaceuser.SpaceUserAddRequest;
import com.yang.ddd.interfaces.dto.spaceuser.SpaceUserEditRequest;
import com.yang.ddd.interfaces.dto.spaceuser.SpaceUserQueryRequest;
import com.yang.ddd.domain.space.entity.SpaceUser;
import com.yang.ddd.interfaces.vo.space.SpaceUserVO;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
* @author Young
* @description 针对表【space_user(空间用户关联)】的数据库操作Service
* @createDate 2025-05-13 22:11:02
*/
public interface SpaceUserApplicationService {

    long addSpaceUser(SpaceUserAddRequest spaceUserAddRequest);

    void validSpaceUser(SpaceUser spaceUser, boolean add);

    QueryWrapper<SpaceUser> getQueryWrapper(SpaceUserQueryRequest spaceUserQueryRequest);

    SpaceUserVO getSpaceUserVO(SpaceUser spaceUser, HttpServletRequest request);

    List<SpaceUserVO> getSpaceUserVOList(List<SpaceUser> spaceUserList);

    boolean save(SpaceUser spaceUser);

    void deleteSpaceUser(DeleteRequest deleteRequest);

    SpaceUser getSpaceUser(SpaceUserQueryRequest spaceUserQueryRequest);

    List<SpaceUserVO> listSpaceUser(SpaceUserQueryRequest spaceUserQueryRequest);

    void editSpaceUser(SpaceUserEditRequest spaceUserEditRequest);

    List<SpaceUserVO> listMyTeamSpace(HttpServletRequest request);
}
